Prioritizing items based on user activity

ABSTRACT

Prioritizing items based on user activity includes determining a user interest based on a current user activity and prioritizing items in a list presented in a display based on the user interest.

RELATED APPLICATIONS

The present application is a continuation of and claimed priority under35 U.S.C. § 120 to U.S. application Ser. No. 14/072,690, filed Nov. 5,2013 which is a continuation of U.S. application Ser. No. 13/841,955,filed Mar. 15, 2013, each entitled “PRIORITIZING ITEMS BASED ON USERACTIVITY,” which are both incorporated herein by reference in itsentirety.

BACKGROUND

The present invention relates to prioritizing items in a display,especially prioritizing items in a display based on a current useractivity.

Search engines allow users to input search queries based on keywordsinto a search query field. The search engine searches online resourcesthat match the keywords in the search query. The search results aredelivered to the user as a listing of results. The results generallyinclude a list of items. Often, the titles of the item, a link to theitem's online location, and a short description showing the item'srelevance to the keywords are displayed with the items. Some searchengines select items to be included in the list based on the item'scontent and metadata tags. A hyperlink markup language (HTML) title tagof the items can be used as the title of the items in the list while thedescription tag is used for the short description.

BRIEF SUMMARY

A method for prioritizing items based on user activity includesdetermining a user interest based on a current user activity andprioritizing items in a list presented in a display based on the userinterest.

A system for prioritizing items based on user activity includes adetermination engine to determine a user interest based on a currentuser activity, an options engine to present prioritization options in adisplay, and a prioritization engine to prioritize items in a listpresented in the display based on the user interest and theprioritization options.

A computer program product for prioritizing items based on user activityincludes a tangible computer readable storage medium, the tangiblecomputer readable storage medium having computer readable program codeembodied therewith, the computer readable program code having programinstructions that, when executed, causes a processor to identifykeywords in an application involved with a current user activity,determine a user interest based on the keywords, present prioritizationoptions in a display, and prioritize items in a list presented in thedisplay based on the user interest and the prioritization options.

A method for prioritizing items based on user activity includesdetermining a user interest based on a current user activity where thecurrent user activity may be an online collaboration activity with atleast one collaborator and the user interest is based on groupmemberships shared with the at least one collaborator and prioritizingitems in a list presented in a display based on the user interest.

A system for prioritizing items based on user activity includes akeyword identification engine to identify keywords in current useractivity, a determination engine to determine a user interest based onthe keywords, and a prioritization engine to prioritize items in a listpresented in the display based on the user interest and theprioritization options.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram of an example of a prioritization system accordingto one example of the principles described herein.

FIG. 2 is a diagram of an example of a list of prioritized itemsaccording to one example of the principles described herein.

FIG. 3 is a diagram of an example of prioritization options according toone example of the principles described herein.

FIG. 4 is a diagram of an example of a method for prioritizing itemsbased on user activity according to one example of the principlesdescribed herein.

FIG. 5 is a diagram of an example of a prioritization system accordingto one example of the principles described herein.

FIG. 6 is a diagram of an example of a prioritization system accordingto one example of the principles described herein.

FIG. 7 is a diagram of an example of a flowchart of a process forprioritizing items based on user activity according to one example ofthe principles described herein.

DETAILED DESCRIPTION

The present specification describes a method and system for prioritizingitems based on current user activity.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations of the presentinvention may be written in an object oriented programming language suchas Java, Smalltalk, C++ or the like. However, the computer program codefor carrying out operations of the present invention may also be writtenin conventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The present invention is described below with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

Often, search results delivered to the user include a large amount ofinformation. The large amounts of information can bury the searchresults of greatest interest to the user. This causes the user to spenda significant amount of time going through the search results to findthe results that are the most interesting to the user. Additionally, dueto the large volume of data, a user may overlook the search results mostinteresting to the user. For example, the user may be overwhelmed withsearch results when trying to find a particular social networking groupor community. In other examples, the user can also be buried ininformation when searching for a contact through a social networkingsite. In yet other examples, the user may have difficulty findingdocuments or links to information of interest to the user when inputtingsearch terms into a search browser.

The principles described herein can cause the items in the searchresults to be sorted in a manner that presents the most interestingitems to the user first. The same method is also applied to web feeds orother content that is updated and delivered to the user. The principlesdescribed herein include a method for determining a user interest basedon a current user activity and prioritizing items in a list presented ina display based on the user interest. The items in the list may besearch results, web feed content, links, collaboration groups, otheritems, or combinations thereof.

Referring now to the figures, FIG. 1 is a diagram of an example of aprioritization system (100). In this example, the prioritization system(100) is in communication with a first client device (102) and a secondclient device (104) over an internet (106). The prioritization system(100) also includes a user interest determination engine (108).

The client device (102) may be any appropriate device that allows theuser to access information from the internet. For example, the clientdevice (102) may be a desktop, a laptop, a personal computer, a mobiledevice, a phone, an electronic tablet, another type of client device, orcombinations thereof.

The prioritization system (100) sorts the order that items are presentedto users in displays of the client devices (102, 104). The items may bepart of search results from a search query, collaboration group searchresults from a collaboration group search, web feeds, news feeds, otheritems, or combinations thereof. The user may have an option to apply theprioritization system (100) to a selected list or a sub-list of items.In some examples, the option is to turn the prioritization system (100)on or off. In other examples, the option includes the ability to applythe prioritization system (100) to specific sets of items whileexcluding other sets of items.

The prioritization system (100) sorts the items based on a user interestdetermined with the user's current activity. The current user activityis the current activity that the user is performing when theprioritization system (100) orders the items in the list. The currentuser activity may be determined by looking at the applications that arecurrently running on the user's client device.

The items that are most relevant to the user's current activity can belisted first in the list of items. To be listed first in a list searchresults, a search result will have both terms that match the searchquery and also terms that match or are at least associated with theuser's interest. For example, a search query for apples can returnsearch results that include a link to caramel apples and another link tonutrition for apples. Such a search query may be inputted through asearch browser, through a collaborative environment, another searchapplication, or combinations thereof. If the user interest determinationengine (106) determines that the user has a user interest for nutritionbased on the user's current user activity, then the prioritizationsystem (100) will prioritize the link to apple nutrition by orderingthat link in front of the link to the caramel apples.

The current user activity can be determined by identifying applicationsthat are currently being operated by the user. For example, if theclient device (102) has a word processing program open, theprioritization system (100) can analyze a document open in the wordprocessing program to determine the user interest. The current activitycan also be determined as the current application in focus. Theprioritization system (100) can identify keywords to determine thesubject of the document. An analyzer may determine that the term“nutrition” or a word derived from the term “nutrition” is mentioned ata frequency above a frequency threshold for determining user interests.In such a situation, the user interest determination engine (108) candetermine that the user has an interest in nutrition. Such a systemprovides the user with an ability to find search terms or content in webfeeds that are relevant to what the user is actually working on in themoment. For example, a user may be writing a paper about nutrition andinput a search query to find an answer to a question about applespertaining to the paper's subject. The prioritization system (100)causes the search results about apple nutrition to be listed first. Thesearch result to the apple's nutrition has a higher likelihood to answerthe user's question, so the prioritization system (100) saves the usertime because the user does not have to search through the rest of theitems to find the answer.

Applications that may be used to determine a user's current activityinclude word processing programs, email programs, calendar artifacts,calendar agendas, collaboration programs, instant messaging programs,conferencing programs, other programs, or combinations thereof. In someexamples, the programs are programs that are run on the user's clientdevice. As a result, the prioritization system (100) can use informationfrom just the client device to determine the user's interest. In otherexamples, the user may be participating in a group meeting through theclient device. In such an example, the meeting may be orchestratedthrough a collaboration program that joins the user as a participantwith other collaborators. In such examples, the prioritization system(100) may use programs that are currently operated on the client devicesof the other participants to determine the user's current activity. Forexample, a user may be participating in a meeting through client device(102) with a collaborator through client device (104). The collaboratormay operate an application on client device (104) that indicates thecollaborator has an interest in a particular subject. As a result, whenthe user on client device (102) inputs a search query on client device(102), the prioritization system (100) uses the application run by thecollaborator on client device (104) to prioritize the search results forthe user on client device (102).

The prioritization system (100) may also use artifacts on the user'scalendaring system to determine a user's interest. For example, theuser's calendaring system may indicate that the user is currently in ameeting, which has an agenda attached. The user interest determinationengine (108) may use the agenda to determine that the user's interest.For example, the meeting agenda may include information about Javaprogramming. As a result, the user interest determination engine (108)may determine that the user has a current interest in Java programmingduring the time that calendar indicates that the user is attending themeeting.

Further, the user may operate a program that is run over the internet(106) on a server, on a data center, distributed over several networkcomponents, at a remote location, or combinations thereof to determinethe user interest. While the examples above have been described withreference to specific mechanisms for determining a user interest basedon a current user activity, any appropriate mechanisms for determininguser interests based on current user activity may be used in accordancewith the principles described herein. Further, while the examples abovehave been described with reference to specific applications to determinea current user activity, any appropriate application for determining acurrent user activity may be used in accordance with the principlesdescribed herein. Also, while the examples above have been describedwith reference to specific mechanisms to analyze the current useractivity to determine the user's interests, any appropriate mechanismsmay be used in accordance with the principles described herein.

FIG. 2 is a diagram of an example of a list (200) of prioritized items.In this example, the prioritized items are shown in a display (204) of aclient device. A search query field (206) is available to the user toinput a search query. Further, a word processing document (208) isdisplayed in the display (204), which indicates that a word processingprogram is operating on the client device.

A user may input a search term into the search query field (206). Theprioritization system can analyze the word processing document (208) todetermine a user interest. Based on the user interest derived from theopen word processing document (208), the prioritization system willprioritize the search result items such that the items that both matchthe terms of the search query and are associated with the user'sinterests will be listed first in the list (200) of prioritized items.

In some examples, the prioritization system determines that the user hasmultiple interests. In such an example, the prioritization system mayprioritize the items according to a prioritization policy. Such aprioritization policy may include factors that consider the relationshipbetween the interests, the strength of the interests, the duration thatthe application has been running, how many applications are running onthe user's client device, which of the applications running on theuser's client device have been used most recently, other considerations,or combinations thereof.

In some situations, multiple applications are running on the clientdevice concurrently. Each of the currently running applications may beused to determine current user interests.

The principles described herein may also assist a user in finding onlinecollaboration groups. The user may find an online collaboration group ofinterest to the user quicker by using the prioritization system. Theonline collaboration group may be part of an online social networkingsite, another type of website, or combinations thereof. In someexamples, the user interest may be determined by a social networkingsite that is running on a collaborator's client device. In such anexample, the information in the user's social networking site's profilemay be used to determine the user interest. Such information may includeonline collaboration group memberships of the collaborator, titleinformation of the collaborator, interests of the collaborator, resumeinformation of the collaborator, other information of the collaborator,or combinations thereof.

FIG. 3 is a diagram of an example of prioritization options (300). Inthis example, the prioritization options (300) are presented in adisplay (302) of a client device. The display (302) also displays webfeeds (304), such as news feeds, and an online collaboration application(306).

The prioritization options (300) allow the user to customize his or herexperience with the prioritization system. For example, the user maydecide to turn off the prioritization system in circumstances where theuser desires. Also, the prioritization system gives the user an optionto determine which applications may be used to determine a user'sinterest. For example, the user may be working on a project that iseasily derived from an operating word processing program, but the usermay also be sending instant messages with a friend about a topic that isunrelated to the subject in the word processing document. In such asituation, the user may select an option to have the prioritizationsystem to apply to the word processing document and not to the instantmessaging program.

The user may have an option to select which keywords that the user wantsto allow the prioritization system to use to determine a user interest.Additionally, the user may also have an option to disallow certain wordsfrom being used to determine the user's interests. In some cases, theprioritization system gives the user an option to define the meaning ofkeywords that can be used to determine the user's interest. For example,the user may indicate that the term “run” is to be understood asoperating a computer program and not as a physical exercise. Further,the prioritization program may automatically determine that some wordsare not to be used to determine the user's interest. For example, wordslike “a,” “the,” “was,” “is,” other words, or combinations thereof canbe automatically weeded out as words that will not assist withidentifying the user's interest.

In the example of FIG. 3, the current user activity is based on theonline collaboration application (306). In such an example, the user'sinterest may be determined by analyzing the keywords inputted by theuser through the online collaboration application (306) or the wordsinputted by the collaborator through the online collaborationapplication (306). In other examples, the prioritization system mayanalyze the keywords from a current user activity on the collaborator'sclient device or from the collaborator's user profile. Theprioritization options may give the user an option to exclude theapplications running on the collaborator's client device from affectingthe prioritization system for the user. In some example, the user has anoption to prevent the prioritization system from allowing theapplications on the user's client device from being used to determinethe collaborator's current user activity. Thus, the user can ensure alevel of privacy from the collaborator determining what the user isdoing on the user's client device outside of the user's collaborationwith the collaborator.

The prioritized items list in the display (302) is a list of items froma web feed (304), such as news feeds. The web feed (304) sends the useritems that link to online content according to the web feed'ssubscription. For example, the user may have a web feed subscription tonews about electronic tablets, and the web feed delivers items to theuser's client device about online content that discusses the newspertaining to electronic tablets. In such an example, the user inputs nosearch query to have the items delivered to the user because the webfeeds rely on the details of the user's web feed subscription todetermine the items to send to the user. In such an example, theprioritization system causes the order of the web feed's items to besuch that the web feeds that are related to the user's interests areordered first in the list.

FIG. 4 is a diagram of an example of a method (400) for prioritizingitems based on the user's activity. In this example, the method (400)includes determining (402) a user interest based on a current useractivity and prioritizing (404) items in a list presented in a displaybased on the user's interest.

The current user activity may be determined based on the applicationthat is currently running on the user's client device. In otherexamples, the current user activity may be determined based on theapplications that the user is accessing through the internet. Such aremote application may be an application that is being run by a serverover a network. In some examples, the remote application is anapplication that is being operated on a client device of a collaborator.

Information from the collaborator's social application profile, groupmemberships, keyword frequency on an application run on thecollaborator's client device, other information, or combinations thereofmay be used to determine the user's interests. Also, the keywordfrequency from applications run on the user's client device can be usedto determine the user's interest. In some examples, multiple interestsare determined. In such examples, the prioritization system determineswhich of the user interests to apply or how to weigh the user'sinterests.

Any appropriate application may be used to determine the user's currentinterests. For example, word processing programs, email programs,calendar artifacts, calendar agendas, collaboration programs, instantmessaging programs, conferencing programs, other applications, orcombinations thereof may be used to determine the user's interests.

In some examples, the prioritization system orders the items returnedfrom a user's search query. The search query may be a search for onlineresources, information within a database, collaboration groups, otherinformation, or combinations thereof. In other examples, the items arenot delivered to the user in response to a search query. Such an examplemay include web feed links, news feed links, other links, orcombinations thereof.

The user may also have an option to customize the parameters of theprioritization system. For example, the user may turn the prioritizationsystem on or off, in whole or in part. Further, the user may select ordeselect terms that can be used to determine the user's interest.Additionally, the user may select or deselect applications that can beused to determine the user's interest.

FIG. 5 is a diagram of an example of a prioritization system (500). Theprioritization system (500) has a determination engine (502), an optionsengine (504), and a prioritization engine (506). In this example, theprioritization engine (500) also has a keyword identification engine(508). The engines (502, 504, 506, 508) refer to a combination ofhardware and program instructions to perform a designated function. Eachof the engines (502, 504, 506, 508) may include a processor and memory.The program instructions are stored in the memory and cause theprocessor to execute the designated function of the engine.

The determination engine (502) determines the user's interests. Theuser's interest is determined by identifying a current user activity andthen analyzing the current user activity to determine the user's currentinterest. The keyword identification engine (508) may be used to analyzethe current user's activity by identifying keywords in an applicationcurrently being used by the user.

The options engine (504) gives the user options on how theprioritization system (500) is implemented. Such parameters may includewhether the prioritization system is activated, the keywords used todetermine an interest, the applications used to determine a userinterest, what devices can be used to determine the user's interest,other parameters, or combinations thereof.

The prioritization engine (506) prioritizes items that are delivered tothe user. For example, the prioritization engine (506) may prioritizeitems in search results, web feeds, other items, or combinationsthereof. The prioritization engine (506) may cause the items that arerelated to the user's current interest to be listed first.

FIG. 6 is a diagram of an example of a prioritization system (600). Inthis example, the prioritization system (600) includes processingresources (602) that are in communication with memory resources (604).Processing resources (602) include at least one processor and otherresources used to process programmed instructions. The memory resources(604) represent generally any memory capable of storing data such asprogrammed instructions or data structures used by the prioritizationsystem (600). The programmed instructions shown stored in the memoryresources (604) include a prioritization activator (606), an applicationselector (608), a keyword selector (610), a current user activitydeterminer (612), an interest determiner (614), an item displayer (616),and an item prioritizer (618).

The memory resources (604) include a computer readable storage mediumthat contains computer readable program code to cause tasks to beexecuted by the processing resources (602). The computer readablestorage medium is a tangible storage medium. The computer readablestorage medium may be any appropriate storage medium that is not atransmission storage medium. A non-exhaustive list of computer readablestorage medium types includes non-volatile memory, volatile memory,random access memory, write only memory, flash memory, electricallyerasable program read only memory, magnetic storage media, or types ofmemory, or combinations thereof.

The prioritization activator (606) represents programmed instructionsthat, when executed, cause the processing resources (602) to active theprioritization aspect of the prioritization system (600). Theprioritization activator (606) may activate the prioritization aspect inresponse to the user selection an option to turn on the prioritizationsystem.

The application selector (608) represents programmed instructions that,when executed, cause the processing resources (602) to select theapplications that can be used to determine a user's current interest.The application selector (608) may determine which applications to usebased on user input. The keyword selector (610) represents programmedinstructions that, when executed, cause the processing resources (602)to select the applications that can be used to determine a user'scurrent interest. The keyword selector (610) may determine whichapplications to use based on user input.

The current user activity determiner (612) represents programmedinstructions that, when executed, cause the processing resources (602)to determine which of the applications selected by the applicationselector (608) are currently operating on the user's client device. Theinterest determiner represents programmed instructions that, whenexecuted, cause the processing resources (602) to determine the currentinterests of the user based on the user's current activity and thekeywords identified in the user's current activity.

The web feed displayer (616) represents programmed instructions that,when executed, cause the processing resources (602) to display a list ofitems. Such items may be from web feeds, search results, other types ofitems, or combinations thereof. The item prioritizer (618) representsprogrammed instructions that, when executed, cause the processingresources (602) to prioritize the items based on the user's currentinterests.

Further, the memory resources (604) may be part of an installationpackage. In response to installing the installation package, theprogrammed instructions of the memory resources (604) may be downloadedfrom the installation package's source, such as a portable medium, aserver, a remote network location, another location, or combinationsthereof. Portable memory media that are compatible with the principlesdescribed herein include DVDs, CDs, flash memory, portable disks,magnetic disks, optical disks, other forms of portable memory, orcombinations thereof. In other examples, the program instructions arealready installed. Here, the memory resources can include integratedmemory such as a hard drive, a solid state hard drive, or the like.

In some examples, the processing resources (602) and the memoryresources (604) are located within the same physical component, such asa server, or a network component. The memory resources (604) may be partof the physical component's main memory, caches, registers, non-volatilememory, or elsewhere in the physical component's memory hierarchy.Alternatively, the memory resources (604) may be in communication withthe processing resources (602) over a network. Further, the datastructures, such as the libraries and may be accessed from a remotelocation over a network connection while the programmed instructions arelocated locally. Thus, the prioritization system (600) may beimplemented on a user device, on a server, on a collection of servers,or combinations thereof.

The prioritization system (600) of FIG. 6 may be part of a generalpurpose computer. However, in alternative examples, the prioritizationsystem (600) is part of an application specific integrated circuit.

FIG. 7 is a diagram of an example of a flowchart (700) of a process forprioritizing items based on user activity. In this example, the processincludes determining (702) whether the prioritization system isactivated. If the prioritization system is not activated, the processends (704). The process also includes determining (706) whether anapplication selected to determine user interests is currently beingoperated. If such an application is not currently being operated, theprocess includes monitoring (708) the user's activity until a selectedapplication is being operated. When a selected application is beingoperated, the user interest is determined (710) by analyzing theselected application.

The process also includes determining (712) whether a list of items isbeing displayed. If there is not a list of items being displayed, thedisplay is monitored (714) until a list of items is displayed. When alist of items is displayed, the list is prioritized (716) based on thedetermined user interest.

While the examples above have been described with reference to specificmechanisms for determining a current user interest, any appropriatemechanisms for determining user interests may be used in accordance withthe principles described herein. Further, while the examples above havebeen described with reference to specific applications that can be usedon the client device, a server, or a collaborator's client device fordetermining the user's interest, any appropriate application may be usedin accordance to the principles described herein. Also, while theexamples above have been described with reference to specific types ofitems, any appropriate type of items may be used in accordance with theprinciples described herein. Additionally, while the examples above havebeen described with reference to specific prioritization options, anyappropriate prioritization options may be used in accordance with theprinciples described herein.

The descriptions of the various examples of the present invention havebeen presented for purposes of illustration, but are not intended to beexhaustive or limited to the examples disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the described examples.For example, the sequence of tasks performed in a method may beperformed in an appropriate manner that brings about the intendedpurpose of such a method. The terminology used herein was chosen to bestexplain the principles of the examples, the practical application ortechnical improvement over technologies found in the marketplace, or toenable others of ordinary skill in the art to understand the examplesdisclosed herein.

What is claimed is:
 1. A method for contextualizing information for auser using information from a second active application comprising, witha local processor: receiving a list of items for a first applicationrunning on the local processor; identifying keywords in a secondapplication running on the local processor; performing a sort of thelist of items using the local processor and the identified keywords,including securing user privacy by maintaining the keywords local to thelocal processor and avoid providing user context information to anexternal source of the received list; outputting a portion of the sortedlist for the user; and further comprising providing the received list tothe first application for display, wherein a portion of the sorted listis subsequently provided to the first application to update the displayof the received list.
 2. The method of claim 1, further comprisingproviding a search term to an external processor.
 3. The method of claim1, wherein the second active application is a word processor.
 4. Themethod of claim 1, wherein the second application is a calendarapplication.
 5. The method of claim 1, wherein identifying keywords inthe second application on a local processor comprises sorting a list ofwords by frequency.
 6. The method of claim 5, wherein identifyingkeywords in the second application comprises comparing a frequency ofthe word with a frequency threshold.
 7. The method of claim 6, whereinthe frequency threshold is different for different words.
 8. The methodof claim 1, wherein the keywords are parsed to remove articles.
 9. Aprocessing system for contextualizing information presented to a user,the system comprising: a processor; and a memory in communication withthe processor, wherein the memory comprises computer readable programcode to cause tasks to be executed by the processor, the taskscomprising: identifying a list of items to be presented to a user;outputting a portion of the list of items for the user; identifying anactive application other than an application to present the list ofitems to the user; identifying data in the active application, whereinthe user has modified the data in a current session of the activeapplication; extracting keywords from the data; sorting the list ofitems using the extracted keywords such that the sorted list iscontextualized by the data in the active application; updating theportion of the list of items for the user by outputting a portion of thesorted list for the user; and receiving user input electing activeapplications.
 10. The system of claim 9, wherein the active applicationis a communication application.
 11. The system of claim 10, wherein theactive application is a text messaging application.
 12. The system ofclaim 10, wherein the active application is an email application. 13.The system of claim 9, wherein the identified list of items is a searchresult received in response to a search request provided by the user.14. A method of contextualizing information for display to a user, themethod comprising with a local processor: receiving a list of items atthe local processor; identifying a scheduling application associatedwith the user; identifying an agenda covering the current time in thescheduling application; extracting keywords from the identified agendausing the local processor; performing a sort of the list of items usingthe extracted keywords on the local processor, wherein performing thesort on the local processor avoids providing the keywords to a remoteprocessor such that the user's contextual information is maintainedlocal to the local processor; and outputting a portion of the sortedlist for the user.
 15. The method of claim 14, further comprisingreceiving a search request from the user and providing the searchrequest to an external processor without the extracted keywords.
 16. Themethod of claim 15, wherein the received list of items has been orderedby the remote processor.
 17. The method of claim 14, wherein thereceived list of items is a newsfeed.
 18. The method of claim 14,further comprising extracting secondary keywords from other activitiesbesides the activity covering the current time within a fixed timeframeof the current time, wherein the secondary keywords have a lowerweighting when performing the sort than the keywords extracted from theactivity covering the current time.
 19. The method of claim 14, furthercomprising requesting the list of items from a remote processor.
 20. Themethod of claim 19, further comprising displaying the list of items fromthe remote processor.